package vista.ventanas;

import java.awt.Window;

import javax.swing.JLabel;

import vista.paneles.PanelDosListas;

import java.util.List;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

import logica.Atributo;
import logica.Entidad;

@SuppressWarnings("serial")
public class VentanaElegirIdentificadores extends SubVentana{

	private PanelDosListas panelAtributo;
	private PanelDosListas panelEntidad;
	
	public VentanaElegirIdentificadores(Window ventanaPadre, List<Atributo> listAtributoIzquierda, List<Entidad> listEntidadIzquierda)
	{
		super(ventanaPadre, "Identificador", 500);
		
		this.panelAtributo.agregarObjetosALista(listAtributoIzquierda);
		this.panelEntidad.agregarObjetosALista(listEntidadIzquierda);
	}
	
	@SuppressWarnings("unchecked")
	public List<Atributo> getAtributos()
	{
		return (List<Atributo>) this.panelAtributo.getObjetosDeListaDerecha();
	}
	
	@SuppressWarnings("unchecked")
	public List<Entidad> getEntidades()
	{
		return (List<Entidad>) this.panelEntidad.getObjetosDeListaDerecha();
	}

	@Override
 	protected void agregarComponentesPanelInformacion()
	{
		this.agregarPanelDeListas();
	}

	private void agregarPanelDeListas() 
	{
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{318, 0};
		gridBagLayout.rowHeights = new int[]{0, 0, 0, 0};
		gridBagLayout.columnWeights = new double[]{0.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{1.0, 1.0, 1.0, Double.MIN_VALUE};
		getPanelDeInformacion().setLayout(gridBagLayout);
		
		JLabel lblElIdentificadorQuedar = new JLabel("<html>El identificador quedará formado por los atributos <br> y entidades que queden del lado derecho.<br></html>");
		
		GridBagConstraints gbc_lblElIdentificadorQuedar = new GridBagConstraints();
		gbc_lblElIdentificadorQuedar.anchor = GridBagConstraints.NORTH;
		gbc_lblElIdentificadorQuedar.fill = GridBagConstraints.HORIZONTAL;
		gbc_lblElIdentificadorQuedar.insets = new Insets(0, 0, 5, 0);
		gbc_lblElIdentificadorQuedar.gridx = 0;
		gbc_lblElIdentificadorQuedar.gridy = 0;
		getPanelDeInformacion().add(lblElIdentificadorQuedar, gbc_lblElIdentificadorQuedar);
		
		agregarPanelAtributo();
		agregarPanelEntidad();
	}

	private void agregarPanelEntidad()
	{
		panelEntidad = new PanelDosListas("");
		
		GridBagConstraints gbc_panel = new GridBagConstraints();
		gbc_panel.insets = new Insets(0, 0, 5, 0);
		gbc_panel.fill = GridBagConstraints.BOTH;
		gbc_panel.gridx = 0;
		gbc_panel.gridy = 2;
		
		getPanelDeInformacion().add(panelEntidad, gbc_panel);
	}

	private void agregarPanelAtributo() 
	{
		panelAtributo = new PanelDosListas("");
		
		GridBagConstraints gbc_panel = new GridBagConstraints();
		gbc_panel.insets = new Insets(0, 0, 5, 0);
		gbc_panel.fill = GridBagConstraints.BOTH;
		gbc_panel.gridx = 0;
		gbc_panel.gridy = 1;
		
		getPanelDeInformacion().add(panelAtributo, gbc_panel);
	}

}
